$('select.chosen-icons').chosenIcons({
    no_results_text: '没有找到',    // 当检索时没有找到匹配项时显示的提示文本
    disable_search_threshold: 10, // 10 个以下的选择项则不显示检索框
    search_contains: true         // 从任意位置开始检索
});
var ztree;
// 加载上级菜单
function optMenu() {
    // 首先获取所有选中的id集合
    var check = $(".checked_detect:checked");
    // 定义一个存放id集合的数组
    var ids = new Array();
    for (var i=0; i < check.length; i++) {
        ids[i] = $(check[i]).attr("value");
    }
    $.ajax({
        type : "GET",
        url : "/admin/menu/tree",
        contentType: "application/json;charset=utf-8",
        dataType:"json",
        success : function (result) {
            if (result.errorCode == 'y') {
                // 初始化加载菜单树，并且默认全部展开节点
                var setting = {
                    data: {
                        simpleData: {
                            enable: true
                        },
                        // 设置 zTree 显示节点时，将 treeNode 的 menuIcon 属性当做节点图标
                        key: {
                            icon: "menuIcon"
                        }
                    }
                };
                var zNodes = result.menuTree;
                ztree = $.fn.zTree.init($("#menuTree"), setting, zNodes);
                // 展开所有节点
                ztree.expandAll(false);
                // 判断是否加载上级菜单被选中的菜单项，添加菜单时不加载，修改菜单时加载
                if (ids.length > 0) {
                    // 获取当前菜单的上级菜单
                    $.get("/admin/menu/getParentMenuById/" + ids[0], function (result) {
                        if (result.menuDto != null) {
                            // 选中当前菜单的上级菜单
                            var menuIds = result.menuDto.id;
                            var node = ztree.getNodeByParam("id", menuIds);
                            if (null != node) {
                                // 默认选中 有check框
                                // ztree.checkNode(node, true, false);
                                // 默认选中 没有check框
                                ztree.selectNode(node);
                            }
                        }
                    });
                }
                // 打开加载菜单模态框
                $('#menuModal').modal({
                    keyboard : false,
                    show     : true
                });
            } else {
                new $.zui.Messager('提示消息：' + result.errorText, {
                    icon: 'exclamation-sign',
                    type: 'success',
                    time: 2000
                }).show();
            }
        },error:function(){
            new $.zui.Messager('提示消息：' + "系统异常", {
                icon: 'exclamation-sign',
                type: 'success',
                time: 2000
            }).show();
        }
    });
}
// 确定上级菜单后，回写到input标签
function getSelectNodes() {
    var treeObj = $.fn.zTree.getZTreeObj("menuTree");
    // 获取复选框/单选框选中的节点：
    /*var nodes = treeObj.getCheckedNodes(true);*/
    // 获取光标选中的(selected)
    var nodes = treeObj.getSelectedNodes();
    var menuId = [];
    var menuName = [];
    for (var i = 0; i < nodes.length; i ++){
        var node = nodes[i];
        // 选中的节点并且该节点的孩子节点没选中或者是叶子节点
        if (node.isParent == false || (node.check_Child_State == 0)) {
            menuId.push(node.id);
            menuName.push(node.name);
        }
    }
    if (menuId.length > 1) {
        new $.zui.Messager('提示消息：' + "请至少选择一个(且只能选择一项)", {
            icon: 'exclamation-sign',
            type: 'danger',
            time: 2000
        }).show();
        return;
    }
    // 回写上级菜单的值到input标签
    $("#pId").val(menuId.join(","));
    $("#pName").val(menuName.join(","));
    $("#epId").val(menuId.join(","));
    $("#epName").val(menuName.join(","));
    $('#menuModal').modal('hide');
}
// 添加表单验证
$(document).ready(function() {
    $('#addForm').bootstrapValidator({
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
            pName: {
                validators: {
                    notEmpty: {
                        message: '上级菜单不能为空'
                    }
                }
            },
            name: {
                validators: {
                    notEmpty: {
                        message: '菜单名称不能为空'
                    }
                }
            },
            type: {
                validators: {
                    notEmpty: {
                        message: '菜单类型不能为空'
                    }
                }
            },
            menuUrl: {
                validators: {
                    notEmpty: {
                        message: '菜单URL不能为空'
                    }
                }
            },
            permission: {
                validators: {
                    notEmpty: {
                        message: '权限标识不能为空'
                    }
                }
            },
            icon: {
                validators: {
                    notEmpty: {
                        message: '菜单图标不能为空'
                    }
                }
            },
            sortNo: {
                validators: {
                    notEmpty: {
                        message: '菜单排序不能为空'
                    }
                }
            }
        }
    }).on('success.form.bv', function (e) {
        // Prevent form submission
        e.preventDefault();
        // Get the form instance
        var $form = $(e.target);
        // Get the BootstrapValidator instance
        var bv = $form.data('bootstrapValidator');
        // Use Ajax to submit form data
        $.post($form.attr('action'), $form.serialize(), function(result) {
            console.log(result);
            if (result.errorCode == 'y') {
                new $.zui.Messager('提示消息：' + result.errorText, {
                    icon: 'exclamation-sign',
                    type: 'success',
                    time: 2000
                }).show();
                setTimeout("location.reload()", 1000);
            } else {
                new $.zui.Messager('提示消息：' + result.errorText, {
                    icon: 'exclamation-sign',
                    type: 'success',
                    time: 2000
                }).show();
            }
        }, 'json');
    });
    // 取消
    $('#resetBtn').click(function() {
        $('#addForm').data('bootstrapValidator').resetForm(true);
    });
    // 修改表单验证
    $('#editForm').bootstrapValidator({
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
            pId: {
                validators: {
                    notEmpty: {
                        message: '上级菜单不能为空'
                    }
                }
            },
            name: {
                validators: {
                    notEmpty: {
                        message: '菜单名称不能为空'
                    }
                }
            },
            type: {
                validators: {
                    notEmpty: {
                        message: '菜单类型不能为空'
                    }
                }
            },
            menuUrl: {
                validators: {
                    notEmpty: {
                        message: '菜单URL不能为空'
                    }
                }
            },
            permission: {
                validators: {
                    notEmpty: {
                        message: '权限标识不能为空'
                    }
                }
            },
            icon: {
                validators: {
                    notEmpty: {
                        message: '菜单图标不能为空'
                    }
                }
            },
            sortNo: {
                validators: {
                    notEmpty: {
                        message: '菜单排序不能为空'
                    }
                }
            }
        }
    }).on('success.form.bv', function (e) {
        // Prevent form submission
        e.preventDefault();
        // Get the form instance
        var $form = $(e.target);
        // Get the BootstrapValidator instance
        var bv = $form.data('bootstrapValidator');
        // Use Ajax to submit form data
        $.post($form.attr('action'), $form.serialize(), function(result) {
            if (result.errorCode == 'y') {
                new $.zui.Messager('提示消息：' + result.errorText, {
                    icon: 'exclamation-sign',
                    type: 'success',
                    time: 2000
                }).show();
                setTimeout("location.reload()", 1000);
            } else {
                new $.zui.Messager('提示消息：' + result.errorText, {
                    icon: 'exclamation-sign',
                    type: 'success',
                    time: 2000
                }).show();
            }
        }, 'json');
    });
});
// 全选
function checkBox(name,checked){
    //全选开始
    $("input[name='"+name+"']").prop("checked", checked);
}
// 批量修改
function optUpdate() {
    // 首先获取所有选中的id集合
    var check = $(".checked_detect:checked");
    // 定义一个存放id集合的数组
    var ids = new Array();
    for (var i=0; i < check.length; i++) {
        ids[i] = $(check[i]).attr("value");
    }
    // 判断是否选择了一个元素
    if (ids.length == 0) {
        new $.zui.Messager('提示消息：' + "请至少选择一个(且只能选择一项)", {
            icon: 'exclamation-sign',
            type: 'danger',
            time: 2000
        }).show();
        return;
    } else if (ids.length > 1) {
        new $.zui.Messager('提示消息：' + "请至少选择一个(且只能选择一项)", {
            icon: 'exclamation-sign',
            type: 'danger',
            time: 2000
        }).show();
        return;
    }
    bootbox.confirm({
        title: "操作提示",
        size: "small",
        message: "你确定要修改选择的数据吗？",
        callback: function (result) {
            if (result) {
                $.ajax({
                    type : "GET",
                    cache : false,
                    url : "/admin/menu/get/" + ids,
                    contentType: "application/json;charset=utf-8",
                    dataType:"json",
                    success : function (result) {
                        if (result.errorCode == 'y') {
                            $("#id").val(result.menuDto.id);
                            $("#epId").val(result.menuDto.pId);
                            $("#epName").val(result.menuDto.pName);
                            $("#ename").val(result.menuDto.name);
                            $("#etype").val(result.menuDto.type);
                            $("#emenuUrl").val(result.menuDto.menuUrl);
                            $("#epermission").val(result.menuDto.permission);
                            /*$("#eicon").val(result.menuDto.icon);*/
                            /*$("#eicon").attr("value", result.menuDto.icon);*/
                            $('select.chosen-icons').trigger('chosen:updated');
                            // 用户改变了选择，快快处理
                            $("#eicon").val(result.menuDto.icon);
                            $("#esortNo").val(result.menuDto.sortNo);
                            // 根据Value值设置Radio为选中值
                            $("input:radio[value="+result.menuDto.type+"]").attr('checked','true');
                            $('#editModal').modal({
                                keyboard : false,
                                show     : true
                            });
                        } else {
                            new $.zui.Messager('提示消息：' + result.errorText, {
                                icon: 'exclamation-sign',
                                type: 'danger',
                                time: 2000
                            }).show();
                        }
                    },error:function(){
                        new $.zui.Messager('提示消息：' + "系统异常", {
                            icon: 'exclamation-sign',
                            type: 'danger',
                            time: 2000
                        }).show();
                    }
                });
            }
        }
    });
}
// 批量删除
function optDelete() {
    // 首先获取所有选中的id集合
    var check = $(".checked_detect:checked");
    // 定义一个存放id集合的数组
    var ids = new Array();
    for (var i=0; i < check.length; i++) {
        ids[i] = $(check[i]).attr("value");
    }
    // 判断是否选择了一个元素
    if (ids.length == 0) {
        new $.zui.Messager('提示消息：' + "请至少选择一个", {
            icon: 'exclamation-sign',
            type: 'danger',
            time: 2000
        }).show();
        return;
    }
    // 删除确认
    bootbox.confirm({
        title: "操作提示",
        size: "small",
        message: "你确定要删除选择的数据吗？",
        callback: function (result) {
            if (result) {
                $.ajax({
                    type : "POST",
                    cache : false,
                    url : "/admin/menu/deleteBatch",
                    data : {ids :ids},
                    contentType: "application/x-www-form-urlencoded;charset=utf-8",
                    dataType:"json",
                    success : function (result) {
                        if (result.errorCode == 'y') {
                            new $.zui.Messager('提示消息：' + result.errorText, {
                                icon: 'exclamation-sign',
                                type: 'success',
                                time: 2000
                            }).show();
                            setTimeout("location.reload()", 1000);
                        } else {
                            new $.zui.Messager('提示消息：' + result.errorText, {
                                icon: 'exclamation-sign',
                                type: 'danger',
                                time: 2000
                            }).show();
                        }
                    },error : function(result) {
                        new $.zui.Messager('提示消息：' + result.errorText, {
                            icon: 'exclamation-sign',
                            type: 'danger',
                            time: 2000
                        }).show();
                    }
                });
            }
        }
    });
}
// 分页
function queryAll(pageNum, pageSize){
    var searchParam = $("input[name='searchParam']").val();
    document.location.href="/admin/menu/list?pageNum="+pageNum+"&searchParam="+searchParam;
}